For many years voice telephone service was implemented over a circuit switched network commonly known as the public switched telephone network (PSTN) and controlled by a local telephone service provider. In such systems, the analog electrical signals representing the conversation are transmitted between the two telephone handsets on a dedicated twisted-pair-copper-wire circuit. More specifically, each telephone handset is coupled to a local switching station on a dedicated pair of copper wires known as a subscriber loop. When a telephone call is placed, the circuit is completed by dynamically coupling each subscriber loop to a dedicated pair of copper wires between the two switching stations.
More recently, the copper wires, or trunk lines between switching stations have been replaced with fiber optic cables. A computing device digitizes the analog signals and formats the digitized data into frames such that multiple conversations can be transmitted simultaneously on the same fiber. At the receiving end, a computing device reforms the analog signals for transmission on copper wires. Twisted pair copper wires of the subscriber loop are still used to couple the telephone handset to the local switching station.
More recently yet, voice telephone service has been implemented over the Internet. Advances in the speed of Internet data transmissions and Internet bandwidth have made it possible for telephone conversations to be communicated using the Internet's packet switched architecture and the TCP/IP and UDP/IP protocols.
To promote the wide spread use of Internet telephony, the International Telecommunication Union (ITU) had developed the H.323 set of standards and the Internet Engineering Task Force (IETF) has developed the Session Initiation Protocol (SIP) and the Multi-Media Gateway Control Protocol (MGCP) for signaling and establishing a peer-to-peer Voice-over-Internet Protocol (VoIP) media session.
In an example of using a MGCP system, a MGCP gateway, commonly called a multi-media terminal adapter (MTA), emulates a PSTN central office switch for supporting operation of one or more PSTN telephony devices. The MTA detects such events as on hook, off hook, and DTMF signaling and generates applicable notify (NTFY) messages to inform a remote MGCP call agent of each event. The MTA also receives various messages from the MGCP call agent and, in response, generates applicable in-band signals (such as ring, caller ID, and call waiting) on the PSTN link to the PSTN telephony device.
To establish a peer-to-peer VoIP media session (e.g. a VoIP telephone call), the calling MTA initiates the session by sending applicable notify (NTFY) messages to an MGCP call agent which indicate the intended destination of the call. The MGCP call agent sends a sequence of create connection (CRCX) messages and modify connection (MDCX) messages to each of the calling MTA and the MGCP gateway supporting the destination device such that the two can begin exchanging real time protocol (RTP) media sessions over UDP/IP channels.
A problem associated with such Internet telephony systems is that network address translation (NAT) firewalls prevent the transmission of UDP/IP frames from an endpoint outside the firewall to an endpoint on a private network inside the firewall. Therefore, if any of the calling MTA, the callee gateway, or the MGCP call agent are behind a NAT firewall, the call signaling messages will be lost and “inbound” UDP/IP channels can not be established.
With respect to the media session, relay servers have been proposed which enable MTA's behind a NAT firewall to establish a UDP/IP channel to a relay server with a globally addressable IP address. The relay server receives RTP streams from each MTA or gateway and forwards to the other MTA or gateway over the same UDP/IP channel established by the MTA or gateway through its NAT firewall. One such solution is described in more detail in U.S. patent application Ser. No. 10/627,594 entitled Firewall Penetration System and Method for Real Time Media Communications which is commonly assigned herewith and incorporated herein.
With respect to call signaling, various proposals have been made for exchanging call signaling messages on UDP/IP channels opened by an MTA inside a NAT firewall to a call agent with a globally addressable IP address. One problem with such solutions is that they require modifying known call agent systems such that: i) signaling to the MTA must occur using the same UDP/IP channel on which the MTA signals the call agent; and ii) periodic keep-alive messages must be exchanged over such UDP/IP channel to assure that the NAT firewall does not close the channel due to time out. While modifying known solutions can be technically feasible, implementing compatible modifications to known solutions developed by multiple providers is logistically impractical. Another problem with such solutions is that they still require the call agent to have a globally addressable IP address—they do not enable the call agent to operate behind a NAT firewall.
Because of the wide spread use of NAT firewalls which typically provide both IP address translation and port translation of all frames sent from the private network to the Internet and because any of the caller MTA, callee MTA, and the MGCP call agent may be behind such a NAT firewall, what is needed is a solution for penetrating firewall systems for real time media communication that does not suffer the disadvantage of such known systems.